Ext.namespace('Ext.ux.form');

Ext.ux.form.YearField = Ext.extend(Ext.form.ComboBox, {
	mode : 'local',
	displayField : 'text',
	valueField : 'value',
	editable : false,
	selectOnFocus : true,
	forceSelection : true,
	allowBlank : false,
	triggerAction : 'all',
	initComponent : function() {
		Ext.ux.form.YearField.superclass.initComponent.call(this);
		if (!this.minValue) {
			this.minValue = new Date().getFullYear() - 1;
		}
		if (!this.maxValue) {
			this.maxValue = new Date().getFullYear();
		}
		if(!this.store){
            var min = this.minValue;
            
            var max = this.maxValue;
            
            var times = [];
            while(min <= max){
                times.push([min,min]);
                min = min+1;
            }
            this.store = new Ext.data.SimpleStore({
                fields: ['text','value'],
                data : times
            });
        }
        if (!this.value){
        	this.value = new Date().getFullYear();
        }
	}

});

Ext.ux.form.MonthField = Ext.extend(Ext.form.ComboBox, {
	mode : 'local',
	displayField : 'text',
	valueField : 'value',
	editable : false,
	selectOnFocus : true,
	forceSelection : true,
	allowBlank : false,
	triggerAction : 'all',
	store : new Ext.data.Store({
		data : [{
			value : 1,
			text : '1'
		}, {
			value : 2,
			text : '2'
		}, {
			value : 3,
			text : '3'
		}, {
			value : 4,
			text : '4'
		}, {
			value : 5,
			text : '5'
		}, {
			value : 6,
			text : '6'
		}, {
			value : 7,
			text : '7'
		}, {
			value : 8,
			text : '8'
		}, {
			value : 9,
			text : '9'
		}, {
			value : 10,
			text : '10'
		}, {
			value : 11,
			text : '11'
		}, {
			value : 12,
			text : '12'
		}],
		reader : new Ext.data.JsonReader({}, [{
			name : 'value'
		}, {
			name : 'text'
		}])
	}),
	initComponent : function() {
		Ext.ux.form.MonthField.superclass.initComponent.call(this);
		if (!this.value){
        	this.value = new Date().getMonth()+1;
        }
	}
});